<template>
	<view>
		<u-modal :show="show" :title="title" :content='content' @confirm="confirm" @cancel="cancel" cancelText="以后再说"
			confirmText="立即升级" showCancelButton closeOnClickOverlay>
		</u-modal>


		<view class="ct2">
			<u-modal :show="show2" content='当前版本为最新版本，无需更新~' @confirm="confirm2" closeOnClickOverlay></u-modal>
		</view>

	</view>
</template>


<script>
import base from "@/request/base.js"
export default {
	data() {
		return {
			title: '发现新版本',
			show: false,
			content: '为保证您的服务和体验，我们对产品进行了更新，优化了应用性能，马上下载最新版智运网App，抢鲜体验最新的产品服务！感谢您对智运网App的支持！',
			version: "1.0.0", //版本号
			downloadUrl: base.downloadUrl || "", // 下载 app 地址，以及版本号地址
			show2: false,
		}
	},
	mounted() {
	},
	methods: {
		// 没有版本更新
		showVersion2() {
			this.show2 = true;
		},
		// 有版本更新
		showVersion() {
			console.log('showVersion');
			uni.getSystemInfo({
				success: (res) => {
					this.version = res.appWgtVersion || res.appVersion;

					console.log(res, '获取app信息');
					// console.log(res.platform);
					//检测当前平台，如果是安卓则启动安卓更新  

					if (res.platform == "android") {
						uni.request({
							//version.txt中内容为版本号，如果版本号大于客户端的版本号，客户端就自动更新
							url: this.downloadUrl + `/version.txt`,
							method: 'GET',
							data: {},
							success: res => {
								// 线上接口的 版本，高于 我们手机安装的版本
								if (res.data > this.version) {
									this.show = true;
								}
							},
							fail: () => { },
							complete: () => { }
						});

					}
				}

			})
		},
		// 确认
		confirm() {
			this.show = false;
			// if (process.env.NODE_ENV === 'development') return //开发者模式 跳出  自动 更新
			this.AndroidCheckUpdate();
		},
		// 取消
		cancel() {
			this.show = false;
		},
		AndroidCheckUpdate() {
			var dtask = plus.downloader.createDownload(
				this.downloadUrl + `/app/zyw.apk`, {},
				function (d, status) {
					//下载完成  

					if (status == 200) {
						plus.runtime.install(plus.io.convertLocalFileSystemURL(d
							.filename), {}, {}, function (error) {
								uni.showToast({
									title: '安装失败',
									mask: false,
									duration: 1500
								});
							})
					} else {
						uni.showToast({
							title: '更新失败',
							mask: false,
							duration: 1500
						});
					}
				});
			try {
				dtask.start(); // 开启下载的任务
				var prg = 0;
				var showLoading = plus.nativeUI.showWaiting(
					"正在下载"); //创建一个showWaiting对象 
				dtask.addEventListener('statechanged', function (
					task,
					status
				) {
					// 给下载任务设置一个监听 并根据状态  做操作
					switch (task.state) {
						case 1:
							showLoading.setTitle("正在下载");
							break;
						case 2:
							showLoading.setTitle("已连接到服务器");
							break;
						case 3:
							prg = parseInt(
								(parseFloat(task.downloadedSize) /
									parseFloat(task.totalSize)) *
								100
							);
							showLoading.setTitle("  正在下载" + prg + "%  ");
							break;
						case 4:
							plus.nativeUI.closeWaiting();
							//下载完成
							break;
					}
				});
			} catch (err) {
				plus.nativeUI.closeWaiting();
				uni.showToast({
					title: '更新失败-03',
					mask: false,
					duration: 1500
				});
			}
		},
		confirm2() {
			this.show2 = false;
		}
	},

}
</script>



<style lang="scss">
// @import "uview-ui/index.scss";

.ct2 .u-modal__content {
	text-align: center !important;
}
</style>
